#!/bin/bash
# 设置MySQL和Redis的密码环境变量，可在启动容器时通过-e参数覆盖
export MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:-'@zyc0131'}
export MYSQL_DB_NAME=${MYSQL_DB_NAME:-'hair_salon_vip'}
export REDIS_PASSWORD=${REDIS_PASSWORD:-'@zyc0131'}

# 初始化MySQL
if [ ! -d "/var/lib/mysql/$MYSQL_DB_NAME" ]; then
    # 使用安全模式初始化MySQL（带随机密码）
    mysqld --initialize --user=mysql --datadir=/var/lib/mysql
    # 启动MySQL服务
    mysqld --daemonize --user=mysql
    sleep 5s
    
    # 获取临时root密码
    TEMP_PASS=$(grep 'A temporary password is generated for root@localhost' /var/log/mysqld.log | awk '{print $NF}')
    
    # 设置新的root密码并创建数据库
    mysql -uroot -p"$TEMP_PASS" --connect-expired-password -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '$MYSQL_ROOT_PASSWORD';"
    mysql -uroot -p"$MYSQL_ROOT_PASSWORD" -e "create database $MYSQL_DB_NAME default charset 'utf8' collate 'utf8_bin'; grant all on $MYSQL_DB_NAME.* to 'root'@'127.0.0.1' identified by '$MYSQL_ROOT_PASSWORD'; flush privileges;"
else
    # 非首次启动时，直接启动MySQL服务
    mysqld --daemonize --user=mysql
fi

# 配置并启动Redis（带密码）
cat > /etc/redis.conf << EOF
bind 127.0.0.1
protected-mode yes
port 6379
dbfilename dump.rdb
dir /var/lib/redis
database 1
requirepass $REDIS_PASSWORD
EOF
redis-server /etc/redis.conf &
if [ "$1" = "actions" ]; then
    # 实际环境中，使用标准启动方式
    /usr/sbin/nginx &
    cd /usr/share/nginx/html/ && ./server &
else 
    /usr/sbin/nginx &
    cd /usr/share/nginx/html/ && ./server &
fi
echo "gva ALL start!!!"
tail -f /dev/null